home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc / OpenDoc Development / Debugging Support / OpenDoc™ Source Code / DocShell / ShellSI.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-28  |  11.1 KB  |  373 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  *  This file was generated by the SOM Compiler.
  4.  *  Generated using:
  5.  *     SOM incremental update: somc/smmain.c
  6.  */
  7.  
  8. /*
  9.     File:        ShellSI.cpp
  10.  
  11.     Contains:    Implementation of Mac specific ShellSI class.
  12.  
  13.     Owned by:    Nick Pilch
  14.  
  15.     Copyright:    © 1994 - 1995 by Apple Computer, Inc., all rights reserved.
  16.  
  17.     Change History (most recent first):
  18.  
  19.         <10>     10/8/95    TJ        Fixes Recomended by Refball
  20.          <9>     8/26/95    TÇ        1274606 FB2: Patching Remarks
  21.          <8>      8/3/95    RR        #1257260: Collapse B classes. Remove
  22.                                     somInit methods. Don't call IsInitialized
  23.                                     or SubclassResponsibility
  24.          <7>     5/21/95    NP        1249232: Gid rid of TokenInquiryProc.
  25.                                     1250474: Change to CallGetMarkTokenProc.
  26.                                     1248779: Change API of GetUserToken.
  27.          <6>     4/28/95    eeh        1244258: remove IsValid and BaseRemoved
  28.                                     override
  29.          <5>     4/27/95    eeh        1230798: override IsValid and BaseRemoved
  30.          <4>     1/27/95    NP        1213948: New classes for ODDesc et al.
  31.          <3>     1/11/95    NP        #1188520-Pass real ODPart to parts.
  32.          <2>      1/9/95    NP        1194880: ShellSI name changes.
  33.          <1>    11/15/94    NP        first checked in
  34.          <7>     9/23/94    NP        1188520-Pass the real ODPart descendent to
  35.                                     the SemanticInterface extension rather than
  36.                                     the ODPartWrapper.
  37.          <6>      9/9/94    NP        1185851: implement scripting. 1184040: API
  38.                                     changes.
  39.          <5>      9/9/94    jpa        Removed call to parent in Release, at
  40.                                     Nick's request. [1185656]
  41.          <4>      7/8/94    NP        Initialize fHelper field.
  42.          <3>      7/8/94    NP        Fixed bugs, implemented coercion handlers,
  43.                                     fixed initialization.
  44.          <2>      7/5/94    NP        Filled in CallEventHandler.
  45.          <1>      7/1/94    NP        first checked in
  46.  
  47.     To Do:
  48. */
  49.  
  50.  
  51. #ifndef _EXCEPT_
  52. #include "Except.h"
  53. #endif
  54.  
  55. #define VARIABLE_MACROS
  56. #define ShellSI_Class_Source
  57. #include <ShellSI.xih>
  58.  
  59. //------------------------------------------------------------------------------
  60. // ShellSI::somInit
  61. //------------------------------------------------------------------------------
  62.  
  63. SOM_Scope void  SOMLINK ShellSIsomInit(ShellSI *somSelf)
  64. {
  65.     // ShellSIData *somThis = ShellSIGetData(somSelf);
  66.     ShellSIMethodDebug("ShellSI","ShellSIsomInit");
  67.  
  68.     ShellSI_parents_somInit(somSelf);
  69.  
  70.     /* _fHelper = kODNULL; */ // som initializes fields to NULL.
  71. }
  72.  
  73. //------------------------------------------------------------------------------
  74. // ShellSI::InitCPlusSemanticInterface
  75. //------------------------------------------------------------------------------
  76.  
  77. SOM_Scope void  SOMLINK ShellSIInitCPlusSemanticInterface(ShellSI *somSelf, Environment *ev,
  78.         ODPart* base,
  79.         SIHelperAbs* helper,
  80.         ODSession* session)
  81. {
  82.     ShellSIData *somThis = ShellSIGetData(somSelf);
  83.     ShellSIMethodDebug("ShellSI","ShellSIInitCPlusSemanticInterface");
  84.     
  85.     SOM_TRY
  86.     somSelf->InitSemanticInterface(ev, base, session);
  87.     SOM_CATCH_ALL
  88.     SOM_ENDTRY
  89.     
  90.     _fHelper = helper;
  91. }
  92.  
  93. //------------------------------------------------------------------------------
  94. // ShellSI::somUninit
  95. //------------------------------------------------------------------------------
  96.  
  97. SOM_Scope void  SOMLINK ShellSIsomUninit(ShellSI *somSelf)
  98. {
  99.     // ShellSIData *somThis = ShellSIGetData(somSelf);
  100.     ShellSIMethodDebug("ShellSI","ShellSIsomUninit");
  101.  
  102.     ShellSI_parents_somUninit(somSelf);
  103. }
  104.  
  105. //------------------------------------------------------------------------------
  106. // ShellSI::GetSIHelper
  107. //------------------------------------------------------------------------------
  108.  
  109. SOM_Scope SIHelperAbs*  SOMLINK ShellSIGetSIHelper(ShellSI *somSelf, Environment *ev)
  110. {
  111.     ShellSIData *somThis = ShellSIGetData(somSelf);
  112.     ShellSIMethodDebug("ShellSI","ShellSIGetSIHelper");
  113.  
  114.     return _fHelper;
  115. }
  116.  
  117. //------------------------------------------------------------------------------
  118. // ShellSI::CallEventHandler
  119. //------------------------------------------------------------------------------
  120.  
  121. SOM_Scope void  SOMLINK ShellSICallEventHandler(ShellSI *somSelf, Environment *ev,
  122.         ODPart* thePart,
  123.         ODAppleEvent* theODAppleEvent,
  124.         ODAppleEvent* reply)
  125. {
  126.     ShellSIData *somThis = ShellSIGetData(somSelf);
  127.     ShellSIMethodDebug("ShellSI","ShellSICallEventHandler");
  128.  
  129.     OSErr error;
  130.     SOM_TRY
  131.         somSelf->CheckValid(ev);
  132.         error = _fHelper->CallEventHandler((ODPart*)somSelf->GetBase(ev),
  133.                                                 theODAppleEvent, reply);
  134.         THROW_IF_ERROR(error);
  135.     SOM_CATCH_ALL
  136.     SOM_ENDTRY
  137. }
  138.  
  139. //------------------------------------------------------------------------------
  140. // ShellSI::CallCoercionHandler
  141. //------------------------------------------------------------------------------
  142.  
  143. SOM_Scope void  SOMLINK ShellSICallCoercionHandler(ShellSI *somSelf, Environment *ev,
  144.         ODPart* thePart,
  145.         ODDesc* theODDesc,
  146.         ODDescType toType,
  147.         ODDesc* result)
  148. {
  149.     ShellSIData *somThis = ShellSIGetData(somSelf);
  150.     ShellSIMethodDebug("ShellSI","ShellSICallCoercionHandler");
  151.  
  152.     OSErr error;
  153.     SOM_TRY
  154.         somSelf->CheckValid(ev);
  155.         error = _fHelper->CallCoercionHandler((ODPart*)somSelf->GetBase(ev),
  156.                                                 theODDesc, toType, result);
  157.         THROW_IF_ERROR(error);
  158.     SOM_CATCH_ALL
  159.     SOM_ENDTRY
  160. }
  161.  
  162. //------------------------------------------------------------------------------
  163. // ShellSI::CallObjectAccessor
  164. //------------------------------------------------------------------------------
  165.  
  166. SOM_Scope void  SOMLINK ShellSICallObjectAccessor(ShellSI *somSelf, Environment *ev,
  167.         ODPart* thePart,
  168.         ODDescType desiredClass,
  169.         ODOSLToken* container,
  170.         ODDescType containerClass,
  171.         ODDescType form,
  172.         ODDesc* selectionData,
  173.         ODOSLToken* value)
  174. {
  175.     ShellSIData *somThis = ShellSIGetData(somSelf);
  176.     ShellSIMethodDebug("ShellSI","ShellSICallObjectAccessor");
  177.  
  178.     OSErr error;
  179.     SOM_TRY
  180.         somSelf->CheckValid(ev);
  181.         error = _fHelper->CallObjectAccessor((ODPart*)somSelf->GetBase(ev),
  182.                                                 desiredClass, container,
  183.                                                 containerClass, form,
  184.                                                 selectionData, value);
  185.         THROW_IF_ERROR(error);
  186.     SOM_CATCH_ALL
  187.     SOM_ENDTRY
  188. }
  189.  
  190. //------------------------------------------------------------------------------
  191. // ShellSI::CallPredispatchProc
  192. //------------------------------------------------------------------------------
  193.  
  194. SOM_Scope void  SOMLINK ShellSICallPredispatchProc(ShellSI *somSelf, Environment *ev,
  195.         ODPart* thePart,
  196.         ODAppleEvent* theODAppleEvent,
  197.         ODAppleEvent* reply)
  198. {
  199.     ShellSIData *somThis = ShellSIGetData(somSelf);
  200.     ShellSIMethodDebug("ShellSI","ShellSICallPredispatchProc");
  201.  
  202.     OSErr error;
  203.     SOM_TRY
  204.         somSelf->CheckValid(ev);
  205.         error = _fHelper->CallPredispatchProc((ODPart*)somSelf->GetBase(ev),
  206.                                                 theODAppleEvent, reply);
  207.         THROW_IF_ERROR(error);
  208.     SOM_CATCH_ALL
  209.     SOM_ENDTRY
  210. }
  211.  
  212. //------------------------------------------------------------------------------
  213. // ShellSI::CallCompareProc
  214. //------------------------------------------------------------------------------
  215.  
  216. SOM_Scope void  SOMLINK ShellSICallCompareProc(ShellSI *somSelf, Environment *ev,
  217.         ODPart* thePart,
  218.         ODDescType oper,
  219.         ODOSLToken* obj1,
  220.         ODOSLToken* obj2,
  221.         ODBoolean* result)
  222. {
  223.     ShellSIData *somThis = ShellSIGetData(somSelf);
  224.     ShellSIMethodDebug("ShellSI","ShellSICallCompareProc");
  225.  
  226.     OSErr error;
  227.     SOM_TRY
  228.         somSelf->CheckValid(ev);
  229.         error = _fHelper->CallCompareProc((ODPart*)somSelf->GetBase(ev), oper,
  230.                                                 obj1, obj2, result);
  231.         THROW_IF_ERROR(error);
  232.     SOM_CATCH_ALL
  233.     SOM_ENDTRY
  234. }
  235.  
  236. //------------------------------------------------------------------------------
  237. // ShellSI::CallCountProc
  238. //------------------------------------------------------------------------------
  239.  
  240. SOM_Scope void  SOMLINK ShellSICallCountProc(ShellSI *somSelf, Environment *ev,
  241.         ODPart* thePart,
  242.         ODDescType desiredType,
  243.         ODDescType containerClass,
  244.         ODOSLToken* container,
  245.         ODSLong* result)
  246. {
  247.     ShellSIData *somThis = ShellSIGetData(somSelf);
  248.     ShellSIMethodDebug("ShellSI","ShellSICallCountProc");
  249.  
  250.     OSErr error;
  251.     SOM_TRY
  252.         somSelf->CheckValid(ev);
  253.         error = _fHelper->CallCountProc((ODPart*)somSelf->GetBase(ev),
  254.                                             desiredType, containerClass,
  255.                                             container, result);
  256.         THROW_IF_ERROR(error);
  257.     SOM_CATCH_ALL
  258.     SOM_ENDTRY
  259. }
  260.  
  261. //------------------------------------------------------------------------------
  262. // ShellSI::CallDisposeTokenProc
  263. //------------------------------------------------------------------------------
  264.  
  265. SOM_Scope void  SOMLINK ShellSICallDisposeTokenProc(ShellSI *somSelf, Environment *ev,
  266.         ODPart* thePart,
  267.         ODOSLToken* unneededToken)
  268. {
  269.     ShellSIData *somThis = ShellSIGetData(somSelf);
  270.     ShellSIMethodDebug("ShellSI","ShellSICallDisposeTokenProc");
  271.  
  272.     OSErr error;
  273.     SOM_TRY
  274.         somSelf->CheckValid(ev);
  275.         error = _fHelper->CallDisposeTokenProc((ODPart*)somSelf->GetBase(ev),
  276.                                                     unneededToken);
  277.         THROW_IF_ERROR(error);
  278.     SOM_CATCH_ALL
  279.     SOM_ENDTRY
  280. }
  281.  
  282. //------------------------------------------------------------------------------
  283. // ShellSI::CallGetErrDescProc
  284. //------------------------------------------------------------------------------
  285.  
  286. SOM_Scope void  SOMLINK ShellSICallGetErrDescProc(ShellSI *somSelf, Environment *ev,
  287.         ODPart* thePart,
  288.         ODDesc** errDesc)
  289. {
  290.     ShellSIData *somThis = ShellSIGetData(somSelf);
  291.     ShellSIMethodDebug("ShellSI","ShellSICallGetErrDescProc");
  292.  
  293.     OSErr error;
  294.     SOM_TRY
  295.         somSelf->CheckValid(ev);
  296.         error = _fHelper->CallGetErrDescProc((ODPart*)somSelf->GetBase(ev),
  297.                                                 errDesc);
  298.         THROW_IF_ERROR(error);
  299.     SOM_CATCH_ALL
  300.     SOM_ENDTRY
  301. }
  302.  
  303. //------------------------------------------------------------------------------
  304. // ShellSI::CallGetMarkTokenProc
  305. //------------------------------------------------------------------------------
  306.  
  307. SOM_Scope void  SOMLINK ShellSICallGetMarkTokenProc(ShellSI *somSelf, Environment *ev,
  308.         ODPart* thePart,
  309.         ODOSLToken* dContainerToken,
  310.         ODDescType containerClass,
  311.         ODOSLToken* result)
  312. {
  313.     ShellSIData *somThis = ShellSIGetData(somSelf);
  314.     ShellSIMethodDebug("ShellSI","ShellSICallGetMarkTokenProc");
  315.  
  316.     OSErr error;
  317.     SOM_TRY
  318.         somSelf->CheckValid(ev);
  319.         error = _fHelper->CallGetMarkTokenProc((ODPart*)somSelf->GetBase(ev),
  320.                                                     dContainerToken,
  321.                                                     containerClass, result);
  322.         THROW_IF_ERROR(error);
  323.     SOM_CATCH_ALL
  324.     SOM_ENDTRY
  325. }
  326.  
  327. //------------------------------------------------------------------------------
  328. // ShellSI::CallMarkProc
  329. //------------------------------------------------------------------------------
  330.  
  331. SOM_Scope void  SOMLINK ShellSICallMarkProc(ShellSI *somSelf, Environment *ev,
  332.         ODPart* thePart,
  333.         ODOSLToken* dToken,
  334.         ODOSLToken* markToken,
  335.         ODSLong index)
  336. {
  337.     ShellSIData *somThis = ShellSIGetData(somSelf);
  338.     ShellSIMethodDebug("ShellSI","ShellSICallMarkProc");
  339.  
  340.     OSErr error;
  341.     SOM_TRY
  342.         somSelf->CheckValid(ev);
  343.         error = _fHelper->CallMarkProc((ODPart*)somSelf->GetBase(ev), dToken,
  344.                                             markToken, index);
  345.         THROW_IF_ERROR(error);
  346.     SOM_CATCH_ALL
  347.     SOM_ENDTRY
  348. }
  349.  
  350. //------------------------------------------------------------------------------
  351. // ShellSI::CallAdjustMarksProc
  352. //------------------------------------------------------------------------------
  353.  
  354. SOM_Scope void  SOMLINK ShellSICallAdjustMarksProc(ShellSI *somSelf, Environment *ev,
  355.         ODPart* thePart,
  356.         ODSLong newStart,
  357.         ODSLong newStop,
  358.         ODOSLToken* markToken)
  359. {
  360.     ShellSIData *somThis = ShellSIGetData(somSelf);
  361.     ShellSIMethodDebug("ShellSI","ShellSICallAdjustMarksProc");
  362.  
  363.     OSErr error;
  364.     SOM_TRY
  365.         somSelf->CheckValid(ev);
  366.         error = _fHelper->CallAdjustMarksProc((ODPart*)somSelf->GetBase(ev),
  367.                                                 newStart, newStop, markToken);
  368.         THROW_IF_ERROR(error);
  369.     SOM_CATCH_ALL
  370.     SOM_ENDTRY
  371. }
  372.  
  373.